Embodiments of the present invention relate generally to determining a presence of a user on a device and/or network and more particularly to using past presence information to help determine a current presence of a user.
Presence can be defined as the technology and information that makes it possible to locate and identify a computing device or, in general, a principal. A principal can be defined as an entity that has an identity, that is capable of providing consent and other data, and to which authenticated actions are done on its behalf. Therefore, a principal may be a computing device but it may also be a person across multiple computing devices or even an organization, a service, or a group of persons. Presence can be further defined as a transient state of a principal that can be used by other entities to make a decision, in real-time, about how to best communicate with the principal. For example, user A can be subscribed to the presence of user B via a presence service. If user A wants to communicate with user B at a given instant, he can make a decision in real-time depending upon the presence information of B, that is, user A can decide how and where to communicate with user B based on user B's presence information at the time. For example, the users can have a web-conference at that instant if B is available or schedule a web conference at a later time, send an SMS, email, etc. The resulting communication may not be immediate, e.g. a decision may be made based on the presence information to send an email or leave a voice mail.
Presence is typically obtained by interrogating a service provided by a service provider to determine whether a particular device is currently present. Various systems and communications networks are able to provide current presence information related to users of those systems and/or networks. Today presence is typically available as part of another communication application like IM (Instant messaging), voice chat (e.g. SKYPE) or push to Talk over cellular (PoC). For example, an IM client can detect presence based on keyboard activity etc. Similarly, a cellular or other telephone service can detect presence based on a condition of a telephone, e.g., the phone being “off-hook”.
Determinations of presence are instantaneous, i.e., they are made in real-time or near real-time with the believe that they are made in real time. Real time presence is presence collected about the principal that describes, for example, user-defined status as provided by the user (on, available, busy, etc.), registration, data and call state that can be captured from the network, application state such as channel and/or device from where the presence was collected (e.g. Web, desktop, phone, mobile), etc. Because of the use of presence in a multitude of applications, it is of great interest to separate the presence from the application that uses it and to aggregate multiple sources of presence and make it available to subscribers of the presence service or allow that presence service to be queried.
However, other information related to a principal's presence beside a current, real-time presence may also be useful in determining how or where to contact that principal. For example, recent activity may be useful as hints to a principal's current presence or availability. However, no current systems or networks consider a principal's past usage to determine presence. Rather, these systems and/or networks rely solely on a principal's current presence or status. Hence, there is a need for methods and systems that allow for using past presence information to help determine a current presence of a principal.